import requests # 导入第三方库
import re #导入正则表达式库
import os # 导入os库用于做系统相关的操作

def get_novel_html(novel_name):
    '''
    获取指定小说的章节及章节链接
    :param novel_nam : 小说名字(拼音)
    :return : 章节名,章节链接
    '''
    base_url = 'https://www.ppzuowen.com' # 小说爬取基础地址
    html = requests.get('https://www.ppzuowen.com/book/'+novel_name).content.decode('GBK') # 获取作品页面
    result_content = re.findall('<a href="(.*?)" class="title" target="_blank">(.*?)</a>',html) # 爬取小说章节目录
    return result_content

def get_text(content_list):
    '''
    通过小说的章节URL获取小说的正文
    :param content_url : 小说章节URL
    :return : 正文内容
    '''
    dict_content = {}
    for url in content_list:
        html = requests.get('https://www.ppzuowen.com/'+url[0]).content.decode('GBK') # 获取正文页面
        result_html = re.findall('<div class="articleContent">(.*?)</div>',html,re.S)
        dict_content[url[1]] = result_html
    return dict_content

def sava_to_file(text):
    os.makedirs('小王子',exist_ok='True')
    for item in text:
        with open(os.path.join('小王子',item+'.html'),'w',encoding='utf-8') as f:
            f.write(text[item][0])

# 执行
sava_to_file(get_text(get_novel_html('xiaowangzi')))